package com.antler.smt.service.admin;

import com.antler.smt.request.admin.AddRoleReq;
import com.antler.smt.request.admin.GetRoleListReq;
import com.antler.smt.request.admin.UpdateRoleReq;
import com.antler.smt.response.admin.GetRoleListResp;
import com.antler.smt.response.base.Result;
import com.github.pagehelper.PageInfo;

/**
 * 角色接口
 *
 * @author vic
 * @date 2018-04-10 20:50
 */
public interface RoleService {
    /**
     * 获取角色列表信息
     *
     * @param request 请求实体
     * @return 角色列表实体
     */
    Result<PageInfo<GetRoleListResp>> listRoleInfo(GetRoleListReq request);

    /**
     * 通过角色id获取角色信息
     *
     * @param roleId 角色id
     * @return 角色信息
     */
    Result getRoleInfoByRoleId(Long roleId);

    /**
     * 删除角色
     *
     * @param roleId 角色id
     * @return result实体
     */
    Result deleteRole(Long roleId);

    /**
     * 新增角色
     *
     * @param request 请求实体
     * @param userId  用户id
     * @return result实体
     */
    Result addRole(AddRoleReq request, Long userId);

    /**
     * 更新角色
     *
     * @param request 请求实体
     * @return result实体
     */
    Result updateRole(UpdateRoleReq request);
}
